go pointer
javaやscript言語では言語仕様にだしてないもの。
いろいろみて回ったのだけど、思ったのは?
goは基本的には値のコピーがどこでも行われる(変数への再代入や関数の引数の評価などで)
なので、値(型情報含む)を共有する場面、例えば、関数に渡して操作してもらう際に、
アドレス情報のコピーで対処してもらう。これなら軽い?し、最終的に同じ値にたどり付けて、
読み出し、書き込みができる *p = 100 で、ポインターpが指す先の値が100になる(元がint型でないといけないが, というか、p := &int(89) みたいにpの指す先はintという形で変数が代入されてる)
辿りつくために、 *という、間接演算子(indirect operator)を用意した。
&は、逆にアドレス演算子( address operator) は、値のアドレスを指す。参照はよいが、代入は、、、
すぐに調べられない(どうググるのがよいか)が、たぶん、危険だからないはず。 #本当か? あとは、コード書きつつ、頭の中がまとまるのをまとう。
参考 以下は、理解したということではないが,,
たぶん、時々、メモリがどうなってるかのイメージをしてると、自分の脳内モデルも修正学習してくだろう。
あと、ポイント型の変数を宣言する際の
p *int で、間接演算子 型という書き方になるのは、、、深く考えずに単にそこにある記号をつかっただけか(仮定法に過去形使うとかと同じ記号節約原理?)